import java.util.*;


//public class ListNode {
//    int val;
//    ListNode next = null;
//    public ListNode(int val) {
//    this.val = val;
//   }
// }


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     *
     * @param head ListNode类
     * @return ListNode类
     */
//单链表反转，方法：通过三个指针表示前，当前，后，遍历整个链表，改变节点的next指向
    public ListNode ReverseList (ListNode head) {
        if(head == null){
            return null;
        }
        ListNode pre = null;
        ListNode cur = head;
        ListNode next = null;
        if(cur.next!=null){
            pre = cur;
            cur = cur.next;
            next = cur.next;
            cur.next = pre;
        }


        while(next!=null){
            pre = cur;
            cur = next;
            next = cur.next;
            cur.next = pre;

        }
        head.next = null;
        return cur;
    }
}